Techniques for Managing Persistent Document Collections

ABSTRACT

Various technologies and techniques are disclosed for creating and managing persistent document collections. A data store is used for storing one or more persistent document collections. A content management application is used for managing documents for users, for creating one or more persistent document collections of a sub-set of the documents upon user request, and for storing the one or more persistent document collections in the data store. Users can create one or more persistent document collections from a sub-set of the documents. Users can also modify the one or more persistent document collections. A requested portion of one or more persistent document collections can be output upon request from an external application so that the external application can download one or more of the documents that are represented by the persistent document collection for further modification by the user.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of, claims the benefit of andpriority to, previously filed U.S. patent application Ser. No.15/453,320 entitled “Techniques for Managing Persistent DocumentCollections” filed on Aug. 3, 2017, which is a continuation of, claimsthe benefit of and priority to, previously filed U.S. patent applicationSer. No. 14/736,839 entitled “Techniques for Managing PersistentDocument Collections” filed on Jun. 11, 2015, which is a continuationof, claims the benefit of and priority to, previously filed U.S. patentapplication Ser. No. 14/602,822 entitled “Techniques for ManagingPersistent Document Collections” filed on Jan. 22, 2015, which is acontinuation of, claims the benefit of and priority to, previously filedU.S. patent application Ser. No. 12/336,554 entitled “Techniques forManaging Persistent Document Collections” filed on Dec. 17, 2008, andissued on Feb. 24, 2015 as U.S. Pat. No. 8,965,926, the subject matterof which are hereby incorporated by reference in their entireties.

BACKGROUND

Many document management applications such as MICROSOFT® OfficeSharePoint Server enable users to organize documents in a series oflists or libraries. Such document management applications can typicallybe accessed through a web browser or a rich client interface, and makeit easy for organizations to share documents with various team members.When adding a new document through the document management application,the user typically selects which list or library to add the document to.Other users can then find that document by accessing that libraryspecifically, or by performing one or more query searches acrosslibraries to locate one or more documents of interest.

If the user wants to work with the same set of documents over a periodof time, he or she typically has two options. The first option is thatthe user can perform the search multiple times to keep re-locating thedocuments. The second option is that the user can keep track of whichvarying libraries actually contain the documents that he or she isinterested in working with. And then each time the user is ready to workwith those documents, he/she must navigate to those respective librariesone by one to access the respective document of interest.

SUMMARY

Various technologies and techniques are disclosed for creating andmanaging persistent document collections. In one implementation, asystem for creating and managing persistent document collections isdescribed. The system includes a data store is used for storing one ormore persistent document collections. The system also includes a contentmanagement application that is used for managing documents for users,for creating one or more persistent document collections of a sub-set ofthe documents upon user request, and for storing the one or morepersistent document collections in the data store.

In another implementation, a method is disclosed for enabling users tocreate and manage one or more persistent document collections. Documentsthat are managed by a content management application are displayed foruser review. An add selection is received from a user which specifies atleast one of the documents to add to a persistent document collection.The user can optionally specify additional attributes about thepersistent document collection, such as storage space to allocate, etc.The persistent document collection is then created and stored in a datastore.

In yet another implementation, techniques are described for a contentmanagement application that also allows external applications to accessand manage documents contained in one or more persistent documentcollections. Users can create one or more persistent documentcollections from a sub-set of the documents. Users can also modify theone or more persistent document collections. A requested portion of oneor more persistent document collections can be output upon request froman external application so that the external application can downloadone or more of the documents that are represented by the persistentdocument collection for further modification by the user.

This Summary was provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagrammatic view of one implementation of a system forcreating and managing persistent document collections.

FIG. 2 is a diagrammatic view of another implementation of a system forcreating and managing persistent document collections and enablingexternal application(s) to access the collections.

FIG. 3 is a process flow diagram for one implementation illustrating thestages involved in adding documents to a persistent document collection.

FIG. 4 is a process flow diagram for one implementation illustrating thestages involved in interacting with an existing persistent documentcollection.

FIG. 5 is a process flow diagram for one implementation illustrating thestages involved in synchronizing files on a particular computer orlocation with the corresponding documents in one or more persistentdocument collections.

FIG. 6 is a process flow diagram for one implementation illustrating thestages involved in downloading one or more documents in a persistentdocument collection to a particular computer or location.

FIG. 7 is a process flow diagram for one implementation that illustratesthe stages involved in allowing external application(s) to access thecontent management application to work with the persistent documentcollection(s).

FIG. 8 is a simulated screen for one implementation that illustratesadding selected documents to a persistent document collection.

FIG. 9 is a simulated screen for one implementation that illustratesselecting a persistent document collection to add the selected documentsto.

FIG. 10 is a simulated screen for one implementation that illustratescreating a new persistent document collection.

FIG. 11 is a simulated screen for one implementation that illustratesmanaging existing persistent document collections.

FIG. 12 is a simulated screen for one implementation that illustratesbrowsing the details of a selected persistent document collection.

FIG. 13 is a diagrammatic view of a computer system of oneimplementation.

DETAILED DESCRIPTION

The technologies and techniques herein may be described in the generalcontext as an application that manages persistent document collections,but the technologies and techniques also serve other purposes inaddition to these. In one implementation, one or more of the techniquesdescribed herein can be implemented as features within a contentmanagement application such as MICROSOFT® Office SharePoint Server, orfrom any other type of program or service that manages documents formultiple users. In another implementation, one or more of the techniquesdescribed herein are implemented as features with other applicationsthat interact with content management applications.

In one implementation, techniques are described for enabling users tocreate persistent document collections. The term “persistent documentcollection” as used herein is meant to include a group of one or moredocuments that are identified by a name or other identifier, and thatget stored so that one or more users can access the underlying documentsthrough the assigned grouping at later points in time. In anotherimplementation, one or more of these persistent document collections canbe accessed by one or more external applications to allow the user towork with them further from those external applications, or to allowthose externals applications to perform other operations independentlyof the user. The term “external application” as used herein is meant toinclude an application that is separate from the document managementapplication that created the persistent document collection(s).

FIG. 1 is a diagrammatic view of one implementation of a system 100 forcreating and managing persistent document collections. A contentmanagement application 102 is responsible for managing various documentsthat are created by multiple users. Content management application 102enables users to organize the documents into various lists and/orlibraries. The user communicates with the content management application102 through a user interface 106, such as through a web browser. In suchas browser-based scenario, the content management application 102 islocated on one or more web servers. The user can use the user interface106 to browse through documents in the content management application102, and to then create one or more persistent document collections. Agiven user can create a particular persistent document collection togroup together documents that he/she would like to work with on a moreregular basis without having to locate them in their respectiveunderlying libraries or other locations where they would normally befound in the content management application 102.

Once created, the persistent document collection(s) are then stored inone or more data stores, such as data store 104. Depending on theimplementation used, the content management application 102 handlesinteractions with the data store 104 and/or user interface 106 handlesinteractions with the data store 104. For example, when contentmanagement application 102 is a web application that resides on a webserver, and with user interface 106 being displayed to the user in a webbrowser, then content management application 102 may handle interactionswith the data store 104 directly. In other implementations, userinterface 106 may contain logic for interacting directly with the datastore 104, such as when user interface and content managementapplication 102 are contained as part of the same executable file on aclient computer. In either scenario, by storing the documentcollection(s) that get created by the user, the same and/or other usersare able to access this grouping of documents more easily on laterinteractions with the content management application 102.

FIG. 2 is a diagrammatic view of another implementation of a system 120for creating and managing persistent document collections and enablingexternal application(s) to access the collections. Since system 120contains similar components as FIG. 1, the same reference numbers areused to indicate the same components. For example, system 120 alsoincludes a content management application 102, data store 104, and userinterface 106. System 120 also includes one or more externalapplications 122 that are “collection aware”. These externalapplications 122 know that the content management application 102manages persistent document collections, and it knows how to interactwith the content management application 102 and the data store 104 toretrieve the persistent document collections and the underlyingdocuments that they represent. In other words, with system 120, contentmanagement application 102 allows one or more external applications 122to access and manage the documents represented in the persistentdocument collection(s). For example, the external application 122 maydownload the document to allow the user to work with those particulardocuments from within the external application 122 (and independentlyfrom the content management application 102). Systems 100 and 120 willnow be described in further detail in the figures that follow.

Turning now to FIGS. 3-7, the stages for implementing one or moreimplementations of system 100 and/or system 120 are described in furtherdetail. In some implementations, the processes and simulated screens ofFIG. 2-12 are at least partially implemented in the operating logic ofcomputing device 500 (of FIG. 13).

FIG. 3 is a process flow diagram 200 that illustrates one implementationof the stages involved in adding documents to a persistent documentcollection. Documents that are managed by a content managementapplication are displayed (stage 202). An add selection is receivedwhich specifies one or more documents to add to a persistent documentcollection (stage 204). In other words, a selection is received from auser or programmatically to add one or more selected documents to apersistent document collection. The user can optionally create a newcollection if the one that he/she wants to add the selected documents todoes not already exist (stage 206). The user can optionally specifyadditional attributes for the persistent document collection (stage208). One non-limiting example of an additional attribute includes asynchronization frequency 436 which specifies how frequently thecollection should be synchronized with the documents downloaded toanother location, such as the user's computer. Another non-limitingexample includes a disk space attribute 438 to specify how much diskspace should be allocated for storing the documents of the persistentdocument collection.

Yet another non-limiting example of an attribute that can be specifiedfor a persistent document collection includes which one or more externalapplications should be allowed to access this persistent documentcollection. These are just a few non-limiting examples of the types ofattributes that can be assigned to one or more persistent documentcollections. In other implementations, fewer and/or additionalattributes could be used.

The persistent document collection is then stored in a data store (stage210) so that the user who created it or other users with appropriatesecurity permissions can access it later. The steps can be repeated toallow more documents to be added at a later time to this persistentdocument collection or a different persistent document collection (stage212).

FIG. 4 is a process flow diagram 220 that illustrates one implementationof the stages involved in interacting with an existing persistentdocument collection. Security permissions can be used to determine whois able to perform some or all of the steps described in FIG. 4. Forexample, a user who created a given persistent document collection maybe provided with permission to view and modify that persistent documentcollection in the future. Permission may be granted to other users toview and/or modify a given collection, such as other members of the teamthat are responsible for the work related to the documents contained ina certain persistent document collection. Numerous other variations arealso possible for controlling who is able to access a given persistentdocument collection.

A list of documents that are part of a persistent document collectionare displayed (stage 222), such as on a computer screen of a user. Theuser is able to specify a remove selection to remove selecteddocument(s) from the persistent document collection, and the contentmanagement application processes the user selection when it is receivedto remove the document from the specified persistent document collection(stage 224). Alternatively or additionally, the user is also able toselect one or more of the documents to view, and the content managementapplication displays the contents of the selected document(s) in a userinterface of the user when such a selection is received from the user(stage 226).

FIG. 5 is a process flow diagram 240 that illustrates one implementationof the stages involved in synchronizing files on a particular computeror location with the corresponding documents in one or more persistentdocument collections. Upon user request, details of a selectedpersistent document collection are displayed (stage 242). The user caninitiate a synchronization of one or more documents represented by thepersistent document collection (stage 244), or the synchronization canbe initiated programmatically, such as on a scheduled basis. The filesresiding on the computer or location specified by the user are thensynchronized with the corresponding document(s) represented in thepersistent document collection (stage 246).

FIG. 6 is a process flow diagram 250 that illustrates one implementationof the stages involved in downloading one or more documents in apersistent document collection to a particular computer or location.Upon user request, details of a selected persistent document collectionretrieved through the content management application and then displayedin a user interface to a user (stage 252). The user can initiate adownload operation of one or more documents that are represented by apersistent document collection (stage 254), or the download operationcan be initiated programmatically. The one or more documents are thendownloaded to the location specified (stage 256). A synchronizationoperation can optionally be performed at a later time to update thecontent management application with the revised version(s) of thedocument(s) (stage 258). An exemplary synchronization process waspreviously described in detail in FIG. 5.

FIG. 7 is a process flow diagram 300 that illustrates one implementationof the stages involved in allowing external application(s) to access thecontent management application to work with the persistent documentcollection(s). A content management application is used to manage one ormore documents for one or more users (stage 302). Users are able tocreate persistent document collections of a sub-set of the documents inthe content management application (stage 304). One or more users areable to modify the persistent document collections (stage 306). In oneimplementation, security permissions that were described in thediscussion of FIG. 4 are used to determine who can access a particularpersistent document collection. The request portion of the persistentdocument collection(s) is output to an external application uponreceiving a request from the external application for the collection(s)(stage 308). The external application can then use the information inone of various ways, such as to allow the user to modify the documentsin that external application (instead of through the content managementapplication itself).

Turning now to FIGS. 8-12, simulated screens are shown to illustrate auser interface for some implementations of system 100 and/or system 120.These screens can be displayed to users on output device(s) 511 (of FIG.13). Furthermore, these screens can receive input from users from inputdevice(s) 512 (of FIG. 13).

FIG. 8 is a simulated screen 400 for one implementation that illustratesadding selected documents to a persistent document collection. In theexample shown on the screen, the user of a content managementapplication is browsing the documents in a particular library of theapplication. The user then selects two of the documents (402 and 404,respectively), and selects the add option 406 to add the selecteddocuments to a persistent document collection. At that point, the useris then prompted to specify what persistent document collection to addthe documents to, such as through a screen similar to FIG. 9, which isdiscussed next.

FIG. 9 is a simulated screen 410 for one implementation that illustratesselecting a persistent document collection to add the selected documentsto. In the example shown, the user is able to select an existingpersistent document collection 412 to add the selected documents to, orto select the create new collection option 414. If the user selects thecreate new collection option 414, then a screen similar to the one shownin FIG. 10 is displayed, which will be discussed momentarily in moredetail. If the user selects an existing persistent document collection412, then the selected documents are simply added to that collection.The user's selection is processed when the user selections a finalizeoption 416, such as an OK button. The user can cancel the operation sothat the selected documents are not added to a persistent documentcollection by selecting a cancel option 418.

FIG. 10 is a simulated screen 430 for one implementation thatillustrates creating a new persistent document collection. In theinstance that the user selected an option to create a new persistentdocument collection that does not already exist (such as by selectingthe create new collection option 414 on FIG. 9), then a screen such asFIG. 10 is shown. In this example, various details about the newcollection can be provided, such as a collection name 432, collectiondescription, and/or other attributes for the collection. A fewnon-limiting examples of other attributes include a synchronizationfrequency 436, the amount of disk storage space 438 to be allowed forthis collection, and/or the external applications 440 that thispersistent document collection can share its documents with. Numerousother types of attributes and/or information about a particularpersistent document collection could be utilized in otherimplementations. These are just shown here for the sake of illustration.

Turning now to FIG. 11, a simulated screen 450 is shown for oneimplementation that illustrates managing existing persistent documentcollections. In this example, the user has selected an option to viewone or more persistent document collections that he is allowed to viewand/or edit. Upon selecting a particular persistent document collectionin the list 458, such as Jane's Documents, the user is then able toselect one or more options to perform on that collection. For example,the user can select the view/edit option 452 to view and/or edit thecontents of that collection. In such a scenario, a screen similar to oneshown in FIG. 12 could be displayed to allow the user to view and/oredit the selected persistent document collection, which will bediscussed momentarily. The user can select the delete option 456 todelete the selected persistent document collection. If the user wants tocreate a new persistent document collection altogether, then he/she canselect the add new option 454.

FIG. 12 is a simulated screen 470 for one implementation thatillustrates browsing the details of a selected persistent documentcollection. In this example, the collection called Jane's Documents isthe one that the user selected to view in more detail. Upondouble-clicking or otherwise selecting a view option, the user can viewthe actual contents of a particular document. For example, if the userdouble-clicks on document 472, then the actual contents of the projectspecification document will be displayed on the screen in a viewer orother program that can read that file format. If the user double-clickson the project budget spreadsheet 474, then the actual contents of theproject budget spreadsheet 474 will be displayed on the screen in aviewer or program that can read that file format. Alternatively oradditionally, operations can be performed to multiple documents in thepersistent document collection at the same time, such as to synchronizethe selected ones to a local machine, etc.

As shown in FIG. 13, an exemplary computer system to use forimplementing one or more parts of the system includes a computingdevice, such as computing device 500. In its most basic configuration,computing device 500 typically includes at least one processing unit 502and memory 504. Depending on the exact configuration and type ofcomputing device, memory 504 may be volatile (such as RAM), non-volatile(such as ROM, flash memory, etc.) or some combination of the two. Thismost basic configuration is illustrated in FIG. 13 by dashed line 506.

Additionally, device 500 may also have additionalfeatures/functionality. For example, device 500 may also includeadditional storage (removable and/or non-removable) including, but notlimited to, magnetic or optical disks or tape. Such additional storageis illustrated in FIG. 13 by removable storage 508 and non-removablestorage 510. Computer storage media includes volatile and nonvolatile,removable and non-removable media implemented in any method ortechnology for storage of information such as computer readableinstructions, data structures, program modules or other data. Memory504, removable storage 508 and non-removable storage 510 are allexamples of computer storage media. Computer storage media includes, butis not limited to, RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other opticalstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or any other medium which can be used tostore the desired information and which can accessed by device 500. Anysuch computer storage media may be part of device 500.

Computing device 500 includes one or more communication connections 514that allow computing device 500 to communicate with othercomputers/applications 515. Device 500 may also have input device(s) 512such as keyboard, mouse, pen, voice input device, touch input device,etc. Output device(s) 511 such as a display, speakers, printer, etc. mayalso be included. These devices are well known in the art and need notbe discussed at length here.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims. All equivalents, changes, andmodifications that come within the spirit of the implementations asdescribed herein and/or by the following claims are desired to beprotected.

For example, a person of ordinary skill in the computer software artwill recognize that the examples discussed herein could be organizeddifferently on one or more computers to include fewer or additionaloptions or features than as portrayed in the examples.

What is claimed is:
 1. A data processing system comprising: a processor;and a memory in communication with the processor, the memory storingexecutable instructions that when executed by the processor, cause thedata processing system to perform functions of: managing documents for aplurality of users; receiving user input from a client-side web browserassociated with one of the plurality of users; creating a persistentdocument collection upon receiving the user input from the client-sideweb browser, the persistent document collection comprising one or moredocuments; assigning a first attribute to the persistent documentcollection, the first attribute specifying an external application thatcan access the persistent document; assigning a second attribute to thepersistent document collection, the second attribute specifying anamount of disk space to allocate to the persistent document collection;and storing the one or more persistent document collections in thememory, in storage space allocated to the one or more persistentdocument collections; wherein the persistent document collection enablesone of the plurality of users to access the one or more documents. 2.The data processing system of claim 1, wherein the executableinstructions, when executed by the processor, further cause the deviceto perform functions of: receiving a request from the externalapplication for information regarding a portion of the persistentdocument collection; and in response to the request from the externalapplication, retrieving the information from the memory and providingthe information to the external application.
 3. The data processingsystem of claim 2, wherein the information that is provided to theexternal application is used by the external application to allowmanagement of the portion of the persistent document collection.
 4. Thedata processing system of claim 2, wherein the executable instructions,when executed by the processor, further cause the device to performfunctions of: in response to the request from the external application,enabling downloading of one or more documents in the portion of thepersistent document collection by the external application.
 5. The dataprocessing system of claim 4, wherein the executable instructions, whenexecuted by the processor, further cause the device to perform functionsof: enabling modifying of the one or more documents in the portion ofthe persistent document collection by the external application.
 6. Thedata processing system of claim 5, wherein modifying of the one or moredocuments includes removing a first document from the portion of thepersistent document collection or updating a second document using arevised version of the second document, the revised version of thesecond document belonging to the persistent document collection.
 7. Thedata processing system of claim 6, wherein the executable instructions,when executed by the processor, further cause the device to performfunctions of: synchronizing one or more documents represented by theportion of the persistent document collection with the one or moredocuments downloaded to a computer by the external application.
 8. Amethod for creating and managing persistent document collections, themethod comprising: managing documents for a plurality of users;receiving user input from a client-side web browser associated with oneof the plurality of users; creating a persistent document collectionupon receiving the user input from the client-side web browser, thepersistent document collection comprising one or more documents;assigning a first attribute to the persistent document collection, thefirst attribute specifying an external application that can access thepersistent document; assigning a second attribute to the persistentdocument collection, the second attribute specifying an amount of diskspace to allocate to the persistent document collection; and storing theone or more persistent document collections in the memory, in storagespace allocated to the one or more persistent document collections;wherein the persistent document collection enables one of the pluralityof users to access the one or more documents.
 9. The method of claim 8,further comprising: receiving a request from the external applicationfor information regarding a portion of the persistent documentcollection; and in response to the request from the externalapplication, retrieving the information from the memory and providingthe information to the external application.
 10. The method of claim 9,wherein the information that is provided to the external application isused by the external application to allow management of the portion ofthe persistent document collection.
 11. The method of claim 9, furthercomprising: in response to the request from the external application,enabling downloading of one or more documents in the portion of thepersistent document collection by the external application.
 12. Themethod of claim 11, further comprising: enabling modifying of the one ormore documents in the portion of the persistent document collection bythe external application.
 13. The method of claim 12, wherein modifyingof the one or more documents includes removing a first document from theportion of the persistent document collection or updating a seconddocument using a revised version of the second document, the revisedversion of the second document belonging to the persistent documentcollection.
 14. A non-transitory computer readable medium on which arestored instructions that, when executed, cause a programmable device to:manage documents for a plurality of users; receive user input from aclient-side web browser associated with one of the plurality of users;create a persistent document collection upon receiving the user inputfrom the client-side web browser, the persistent document collectioncomprising one or more documents; assign a first attribute to thepersistent document collection, the first attribute specifying anexternal application that can access the persistent document; assign asecond attribute to the persistent document collection, the secondattribute specifying an amount of disk space to allocate to thepersistent document collection; and store the one or more persistentdocument collections in the memory, in storage space allocated to theone or more persistent document collections; wherein the persistentdocument collection enables one of the plurality of users to access theone or more documents.
 15. The non-transitory computer readable mediumof claim 14, wherein the instructions further cause the programmabledevice to: receive a request from the external application forinformation regarding a portion of the persistent document collection;and in response to the request from the external application, retrievethe information from the memory and providing the information to theexternal application.
 16. The non-transitory computer readable medium ofclaim 15, wherein the information that is provided to the externalapplication is used by the external application to allow management ofthe portion of the persistent document collection.
 17. Thenon-transitory computer readable medium of claim 15, wherein theinstructions further cause the programmable device to: in response tothe request from the external application, enabling downloading of oneor more documents in the portion of the persistent document collectionby the external application.
 18. The non-transitory computer readablemedium of claim 17, wherein the instructions further cause theprogrammable device to: enabling modifying of the one or more documentsin the portion of the persistent document collection by the externalapplication.
 19. The non-transitory computer readable medium of claim18, wherein modifying of the one or more documents includes removing afirst document from the portion of the persistent document collection orupdating a second document using a revised version of the seconddocument, the revised version of the second document belonging to thepersistent document collection.
 20. The non-transitory computer readablemedium of claim 15, wherein the instructions further cause theprogrammable device to: synchronizing one or more documents representedby the portion of the persistent document collection with the one ormore documents downloaded to a computer by the external application.